package com.itheima.array;

import java.util.Scanner;

/**
 * @Author 王加鑫
 * @Date 2021/4/20 21:15
 * @Version 1.0
 * 需求：
 * 已知一个数组 arr = {19, 28, 37, 28, 50}; 键盘录入一个数据，查找该数据在数组中的所有索引,
 * 并将这些索引记录到一个新的数组中，并在控制台输出新数组中的所有元素,例如:
 * 请输入要查找的元素:
 * 28
 * 28在数组中的所有索引是: [1,3]
 */
public class arrayTest08 {
    public static void main(String[] args) {
        int[] arr = {19, 28, 37, 28, 50,28,28,28,50};
        Scanner sc = new Scanner(System.in);
        //数组索引
        //计数器
        int count = 0;
        System.out.println("请输入要查找的元素:");
        int num = sc.nextInt();
        for (int i = 0; i < arr.length; i++) {
            if(num == arr[i]){
                count++;
            }
        }
        //4.根据根据count来确定新数组长度,以及判断出要查找的元素在arr中存在
        if(count == 0){
            System.out.println("您要查找的元素不存在!");
        }else {
            //4.1 定义一个新数组,用来管理num在arr中出现的所有索引值
            int[] indexArr = new int[count];                //int[] indexArr = {0,0,0}

            //5. 遍历arr,得到num值的所有索引位置
            int j = 0;      // 用来管理indexArr的索引,用来记录当前数组已经记录到哪个索引位置了
            for (int i = 0; i < arr.length; i++) {
                if (num == arr[i]){
                    // 5.1 将i索引记录到 indexArr,
                    indexArr[j] = i;
                    j++;
                }
            }

            // 6. 遍历输出indexArr即可
            for (int i = 0; i < indexArr.length; i++) {
                if (i == 0) {
                    System.out.print("["+indexArr[i] + ", ");
                }else if (i != indexArr.length -1){
                    System.out.print(indexArr[i] + ", ");
                }else {
                    System.out.println(indexArr[i] + "]");
                }
            }
        }




    }
}
